﻿//*********************************************************//
//    Copyright (c) Microsoft. All rights reserved.
//    
//    Apache 2.0 License
//    
//    You may obtain a copy of the License at
//    http://www.apache.org/licenses/LICENSE-2.0
//    
//    Unless required by applicable law or agreed to in writing, software 
//    distributed under the License is distributed on an "AS IS" BASIS, 
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
//    implied. See the License for the specific language governing 
//    permissions and limitations under the License.
//
//*********************************************************//

namespace Microsoft.NodejsTools.Jade {
    internal partial class JadeTokenizer : Tokenizer<JadeToken> {
        private void OnFilter() {
            // :markdown
            _cs.MoveToNextChar();

            var range = ParseIdentifier();
            if (range.Length > 0) {
                var text = _cs.GetSubstringAt(range.Start, range.Length);
                if (JadeFilters.IsFilter(text)) {
                    AddToken(JadeTokenType.Filter, range.Start - 1, range.Length + 1);

                    int blockIndent = CalculateLineIndent();
                    SkipToEndOfBlock(blockIndent, text: true);

                    return;
                }
            }

            SkipToEndOfLine();
        }
    }
}